Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE.
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 4 Jul 2012 14:38:02 +0000 (10:38 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 4 Jul 2012 14:38:02 +0000 (10:38 -0400)
commit722ac2b86e227f1926b76e00e63c15d9a35c459c
tree9444d068794030bd8fa1d384915762815555c925
parent4c12d8b3878806dd84a1bf7a10c3320445cb33eb
Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE.
* src/lisp.h (enum pvec_type): Use fewer bits.
(PSEUDOVECTOR_SIZE_BITS): New constant.
(PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK): Use it.
(XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR, DEFUN): Adapt code to
change in pvec_type.
(PSEUDOVECTOR_TYPEP): New macro.
(TYPED_PSEUDOVECTORP): Use it.
* src/fns.c (internal_equal): Adapt code to extract pvectype.
* src/emacs.c (gdb_pvec_type): Update type.
* src/alloc.c (PSEUDOVECTOR_NBYTES): New macro.
(VECTOR_FREE_LIST_SIZE_MASK): Remove (=> PSEUDOVECTOR_SIZE_MASK).
(VECTOR_FREE_LIST_FLAG): Remove (=> PVEC_FREE).
(SETUP_ON_FREE_LIST): Use XSETPVECTYPESIZE.
(sweep_vectors): Use it.  Use local var `total_bytes' instead of
abusing vector->header.next.nbytes.
(live_vector_p): Use PVEC_TYPE.
(mark_object): Adapt code to extract pvectype.  Use switch.
src/ChangeLog
src/alloc.c
src/emacs.c
src/fns.c
src/lisp.h